package com.fuhao.singleton.innerstatic;

import org.omg.CORBA.PRIVATE_MEMBER;

/**
 * 单例模式之静态内部类
 * @author zhang
 *
 */
public class InnerStatic {
	
	/**
	 * 优点：
	 * 1.可延迟加载
	 * 2.相对懒汉模式，静态内部类是线程安全的
	 * 
	 * 缺点：
	 * 1.需要两个类进行完成
	 * 2.同样与饿汉模式实例存在于永久带中，GC不会回收
	 */
	
	//1.私有化对象
	private InnerStatic() {}
	
	//2.创建静态内部类，好处是静态内部类不会在类初始化时候被初始化
	 public static class instance{
		private static final InnerStatic innerStatic = new InnerStatic();
	}
	 
	//3.暴露获取实例的方法给外界 
	public static InnerStatic getInstance() {
		return instance.innerStatic;
	}

//##############################测试######################################
	
	public static void main(String[] args) {
		InnerStatic instance1 = InnerStatic.getInstance();
		InnerStatic instance2 = InnerStatic.getInstance();
		System.out.println(instance1==instance2);
	}
}
